/*
 * Copyright (c) 2024. hallele, Inc All rights reserved.
 */

package cn.hallele.ms.usercenter.application.action.user;

import cn.hallele.infrastructure.metadata.io.Page;
import cn.hallele.ms.usercenter.application.bo.UserBO;
import cn.hallele.ms.usercenter.application.bo.UserQueryBO;
import cn.hallele.ms.usercenter.application.das.UserBDDas;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * hallele_ms_usercenter
 *
 * @author anle5
 * @since 2024/10/5 16:21
 */
@Slf4j
@Service
public class UserApplicationService {
    @Autowired
    private UserBDDas userBDDas;

    /**
     * 条件分页查询用户
     *
     * @param condition 查询条件
     * @return 用户
     */
    public Page<UserBO> listUser(UserQueryBO condition) {
        return userBDDas.listUser(condition);
    }

    /**
     * 获取用户信息
     *
     * @param username 用户名
     * @return 用户信息
     */
    public UserBO getUser(String username) {
        return userBDDas.getUser(username);
    }

    /**
     * 添加用户
     *
     * @param userBO 用户信息
     */
    public void addUser(UserBO userBO) {
        userBDDas.addUser(userBO);
    }

    /**
     * 修改用户
     *
     * @param userBO 用户
     * @return 修改后的用户信息
     */
    public UserBO updateUser(UserBO userBO) {
        return userBDDas.updateUser(userBO);
    }

    /**
     * 删除用户
     *
     * @param username 用户名
     */
    public void deleteUser(String username) {
        userBDDas.deleteUser(username);
    }

    /**
     * 修改密码
     *
     * @param username    用户名
     * @param oldPassword 旧密码，加密的
     * @param newPassword 新密码，加密的
     * @return true：成功， false：失败
     */
    public Boolean resetPassword(String username, String oldPassword, String newPassword) {
        return null;
    }

    /**
     * 获取用户头像
     *
     * @param username 用户名
     * @return 用户头像
     */
    public String getAvatar(String username) {
        return userBDDas.getAvatar(username);
    }
}
